The present invention relates to a method for providing software technical support from a remote location via, for example, the Internet. More specifically, the present invention provides a method by which software upgrades and fixes for software bugs may be incorporated into a customer's software from the remote location.
Once a software producing company has sold a software product to its customer, it is extremely important to keep track of these customers and to update the software periodically. No software program is ever bug free; in fact, the software industry is quite accustomed to re-releasing newer versions of software programs on a periodic basis in order to correct errors in the software. These later releases may add new features to the software, may correct minor problems, or often correct critical errors in the software. Because the performance of a software program is important for customers, it is in a software company's best interest to release these later versions of software to its customers and to insure that the newer software versions are received and installed correctly.
However, numerous obstacles are present that thwart even the best efforts of a conscientious software company to periodically update its software products with newer versions for all of its customers. One problem is that few customers who buy a software program go through the formalities of registering the program and sending the registration back to the software company. A registration form allows a software company to keep track of purchasers of its software, their addresses, contact persons, the version purchased, etc. However, few such software registration forms are received by software vendors. This makes it extremely difficult for a software company to determine to whom regular updates should be sent. For those software companies that update software regularly (such as quarterly) or may need to correct critical software bugs, this lack of software registration presents a real problem. And even if a registration form has been received, it is often difficult to figure out exactly to whom the new software version should be directed. Individuals change roles within an organization, organizations merge, engineers leave, etc., all making it extremely difficult to figure out to whom within an organization a new software version should be sent. It is also important that new versions of software be sent to a responsible person within the organization to ensure that all computers running the software are updated with the new version, and that the installation is done correctly. However, even with such competent individuals, errors in installation.
Another problem with releasing new versions of software to customers is the problem of distribution. In order to release a new version of the software, the vendor must purchase floppy or compact disks to hold the software, copy the software onto the disks, label the disks, determine who the appropriate customers and contacts are, and label and mail these disks to the correct individual. But as mentioned above, even if these disks containing the latest software version arrive at the correct location, there is no guarantee that the software will be installed correctly. Any problems encountered with the software, either due to bugs or incorrect installation will undoubtedly be blamed upon the software company that has sold the software program.
It is clearly in the best interests of a software company to ensure that updated versions of its software are timely received by the correct individuals within one of its customers, and correctly installed.
Another problem encountered by software companies is the identification and correction of software bugs encountered by customers in the course of using their software.
Typically, a customer receiving an error message while using software will call the software company and relate the circumstances surrounding the problem. Such a user may be able to relate generally what he was doing at the time, describe the problem that occurred, and report any error ID number that was produced. However, it is rare that specific details involving computer configuration, other programs running, and the status of internal variables are reported. Essentially, the problem is that the customer is in a location isolated from the software company when the problem occurs and has no means of transferring a "snapshot" of his system at the time the error occurs.
Of course, if the customer discontinues use of the software, ignores the problem, or otherwise chooses not to contact the software company with news of the error, the software company is put at a disadvantage. In these situations, because the vendor does not hear about the occurrence of the problem, it is not given the opportunity to correct it. Because errors in software can be extremely complex and subtle, it is very important for a software company to know exactly the circumstances under which the problem occurred in order to be able to reproduce the problem and to solve it. For customers using the software at a remote location on a remote computer, it is unlikely and extremely difficult that a customer will be able to transfer all of the information concerning such a problem back to the software company.
It is therefore desirable that a technique be provided by which a software vendor can track customers, upgrade customer software with newer versions, and correct software bugs from remote locations.